PHLEGM v4 - Commodore PROGRAM LOAD checkpoint

Purpose
-------
Add explicit PROGRAM LOAD syntax as the symmetric counterpart to PROGRAM SAVE while keeping PRG behavior machine-definition driven.

Commands
--------
PROGRAM LOAD "my program.prg"
  Loads the PRG payload at the two-byte little-endian address embedded in the PRG header.

PROGRAM LOAD "code.prg" $0800 $0FFF
  Loads the PRG payload into the explicit inclusive destination range $0800-$0FFF.
  The range byte count must exactly match the PRG payload byte count.

PROGRAM <file.prg|archive.zip> [#n|member]
  Remains supported as the existing shorthand/header-address loader.

PROGRAM SAVE <file.prg> [<start> <end>]
  Remains the PRG creation counterpart.

Data-driven fields
------------------
program_prg_load_allow_explicit_range=true
program_prg_load_explicit_range_mode=exact-payload
program_prg_load_explicit_apply_basic_fixup=false

These fields are declared by each supported Commodore machine. Runtime code does not infer explicit-range support from vendor/model names. Explicit range loads use PRG payload bytes only; the two-byte PRG header remains metadata. BASIC pointer fixups are disabled for explicit-range loads by the current machine definitions so machine-code/data PRGs do not accidentally rewrite BASIC bookkeeping.

GUI
---
Under the existing Memory / Program -> PROGRAM branch:
- Load using embedded PRG address...
- Load PRG / ZIP (optional explicit range)...
- Create PRG from memory...

Validation
----------
The loader validates the complete destination before writing, requires ordinary writable memory, verifies each written byte, and verifies the payload again after any applicable BASIC bookkeeping. Source/config/document text files remain Windows CRLF.
